To increase programming precision and to avoid over-programming, certain types of non-volatile memory are typically programmed using a sequence of program pulse and verify (PV) cycles. Flash memory and resistive random access memory (“ReRAM”) are two types of memory that often require the use of numerous consecutive PV cycles for programming. Each PV cycle typically includes a program pulse that incrementally increases the charge stored on the floating gates of memory cells by applying a program voltage to the memory cells for some duration, as well as a verify operation that determines whether the memory cells have been properly programmed. More specifically, during execution of a program command in a flash memory array, a first PV cycle is initiated that applies a first program pulse to the control gates of the addressed floating gate memory cells to incrementally program data therein, and then the contents of the addressed memory cells are examined to verify that the addressed memory cells are properly programmed. Any memory cells that are not properly (e.g., completely) programmed during the first PV cycle are identified, and then a second PV cycle is initiated for those identified memory cells. This process is repeated until all the memory cells addressed by the program command are completely programmed with the program data.
Once the sequence of PV cycles associated with a program command is initiated, all memory cells in the memory array are typically unavailable for other operations (e.g., read operations) until execution of the program command is complete.
Thus, there is a need for non-volatile memory that can be accessed in a faster and more efficient manner during programming operations.
Like reference numerals refer to corresponding parts throughout the drawing figures.